package com.cs.beneficios.business.entity;

import com.cs.beneficios.business.model.AtributoVO;
//import com.cs.beneficios.business.model.ProgramaVO;
import com.cs.beneficios.business.model.ValorFlexibleVO;
import com.cs.beneficios.common.ConnectionFactory;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.Types;

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

public class AtributosDAO 
{
  /**
   * Conexion a la base de datos.
   */
  private Connection conn = null;
  private ConnectionFactory cf;
  
  /**
   * Constructor que inicializa la conexion con la base de datos.
   * @param conn Conexion con la base de datos.
   */
  
  public AtributosDAO(ConnectionFactory cf)
  {
	this.cf = cf;
	try{
	  this.conn = this.cf.getConnection();
	}catch(SQLException e){}
  }
  
 public Collection GetAtributos(String Codigo, String vigencia, int opcion ) throws SQLException 
  {
	int CodigoSub=Integer.parseInt(Codigo.trim());
	String query = "";
    
	if(opcion==0)
	{
	   query = "SELECT CODIGO, TIPO_ATRIBUTO, NOMBRE, REST_CODIGO, ORDEN, LONGITUD, "+
			   "OBLIGATORIO, ETIQUETA, VALOR_SUGERIDO, VALIDAR_LISTA, "+
			   "VIGENCIA, TTVF_CODIGO_DOMINIO, DESCRIPCION, TIPO_DATO "+
			   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
			   "WHERE SBPR_CODIGO="+CodigoSub+" AND VIGENCIA='"+vigencia+"' "+
			   "ORDER BY ORDEN ";
	}else
	{
	   query = "SELECT CODIGO, TIPO_ATRIBUTO, NOMBRE, REST_CODIGO, ORDEN, LONGITUD, "+
			   "OBLIGATORIO, ETIQUETA, VALOR_SUGERIDO, VALIDAR_LISTA, "+
			   "VIGENCIA, TTVF_CODIGO_DOMINIO, DESCRIPCION, TIPO_DATO "+
			   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
			   "WHERE SBPR_CODIGO="+CodigoSub+" AND VIGENCIA='"+vigencia+"' "+
			   "AND REST_CODIGO IS NULL ORDER BY ORDEN ";
	}
    
    
   
                          
    
	ResultSet rst = null;
	ArrayList atributos = new ArrayList();
	rst = cf.getRecordsRset(query,null,conn);
		AtributoVO atr = null;
		while ( rst.next() ) 
		{
		atr = new AtributoVO();
        
		atr.setCodigo(rst.getString("CODIGO"));
		atr.setCodatributo(rst.getString("CODIGO"));
		atr.setTipoatributo(rst.getString("TIPO_ATRIBUTO"));
		atr.setNombre(rst.getString("NOMBRE"));
		atr.setRestriccion(rst.getString("REST_CODIGO"));
		atr.setOrden(rst.getString("ORDEN"));
		atr.setLongitud(rst.getString("LONGITUD"));
		atr.setObligatorio(rst.getString("OBLIGATORIO"));
		atr.setEtiqueta(rst.getString("ETIQUETA"));
		atr.setValorsugerido(rst.getString("VALOR_SUGERIDO"));
		atr.setValLista(rst.getString("VALIDAR_LISTA")); 
		atr.setVigencia(rst.getString("VIGENCIA"));
		atr.setTipovalorflex(rst.getString("TTVF_CODIGO_DOMINIO"));
		atr.setDescripcion(rst.getString("DESCRIPCION"));
		atr.setTipodato(rst.getString("TIPO_DATO"));
        
        
		String strdominio = rst.getString("VALIDAR_LISTA");
		if (strdominio.equals("S"))
		{
		  atr.setValoresflexibles(llenarLista(atr));
		  String strVS = rst.getString("VALOR_SUGERIDO");
		  atr.setDesvalorsugerido(getDesVFL(atr));
       
		}
        
       
		atributos.add(atr);
		atr=null;
        
		}
	rst.close();
	return atributos;
  }
  
	public AtributoVO GetAtributos(String codigoSub) throws SQLException {

	   String query = "";
	   query = "SELECT CODIGO, TIPO_ATRIBUTO, NOMBRE, REST_CODIGO, ORDEN, LONGITUD, "+
				  "OBLIGATORIO, ETIQUETA, VALOR_SUGERIDO, VALIDAR_LISTA, "+
				  "VIGENCIA, TTVF_CODIGO_DOMINIO, DESCRIPCION, TIPO_DATO "+
				  "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
				  "WHERE UPPER(TRIM(NOMBRE)) = 'GESTOR' AND SBPR_CODIGO="+codigoSub;
 
	   ResultSet rst = null;
	   rst = cf.getRecordsRset(query,null,conn);
	   AtributoVO atr = null;
	   if(rst.next()){
			atr = new AtributoVO();
            
			atr.setCodigo(rst.getString("CODIGO"));
			atr.setCodatributo(rst.getString("CODIGO"));
			atr.setValorsugerido(rst.getString("VALOR_SUGERIDO"));
			atr.setTipovalorflex(rst.getString("TTVF_CODIGO_DOMINIO"));
            
			String strdominio = rst.getString("VALIDAR_LISTA");
			if (strdominio.equals("S")){
			 atr.setValoresflexibles(llenarLista(atr));
			 atr.setDesvalorsugerido(getDesVFL(atr));
			}           
		}
        
		rst.close();
        
	   return atr;
	 }

  /**
   * Autor FELIPE RODRIGUEZ
   * @param Codigo
   * @return 
   * @throws java.sql.SQLException
   */
public AtributoVO GetPropiedadesAtri(String Codigo, String vigencia) throws SQLException 
  {
	int CodigoAtri=Integer.parseInt(Codigo.trim());
	String query = "SELECT CODIGO, TIPO_ATRIBUTO, NOMBRE, REST_CODIGO, ORDEN, LONGITUD, "+
				   "OBLIGATORIO, ETIQUETA, VALOR_SUGERIDO, VALIDAR_LISTA, "+
				   "VIGENCIA, TTVF_CODIGO_DOMINIO, DESCRIPCION, TIPO_DATO "+
				   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
				   "WHERE CODIGO="+CodigoAtri+" AND VIGENCIA = '"+vigencia+"'";
                          
    
	ResultSet rst = null;
	rst = cf.getRecordsRset(query,null,conn);
		AtributoVO atr = null;
		while ( rst.next() ) 
		{
		atr = new AtributoVO();
    
		atr.setCodigo(rst.getString("CODIGO"));
		atr.setCodatributo(rst.getString("CODIGO"));
		atr.setTipoatributo(rst.getString("TIPO_ATRIBUTO"));
		atr.setNombre(rst.getString("NOMBRE"));
		atr.setRestriccion(rst.getString("REST_CODIGO"));
		atr.setOrden(rst.getString("ORDEN"));
		atr.setLongitud(rst.getString("LONGITUD"));
		atr.setObligatorio(rst.getString("OBLIGATORIO"));
		atr.setEtiqueta(rst.getString("ETIQUETA"));
		atr.setValorsugerido(rst.getString("VALOR_SUGERIDO"));
		atr.setValLista(rst.getString("VALIDAR_LISTA")); 
		atr.setVigencia(rst.getString("VIGENCIA"));
		atr.setTipovalorflex(rst.getString("TTVF_CODIGO_DOMINIO"));
		atr.setDescripcion(rst.getString("DESCRIPCION"));
		atr.setTipodato(rst.getString("TIPO_DATO"));
     
		}
	rst.close();
	return atr;
}

public AtributoVO GetPropiedadesAtri(String Codigo) throws SQLException 
  {
	int CodigoAtri=Integer.parseInt(Codigo.trim());
	//AtributoVO atributos = new AtributoVO();
	String query = "SELECT CODIGO, TIPO_ATRIBUTO, NOMBRE, REST_CODIGO, ORDEN, LONGITUD, "+
				   "OBLIGATORIO, ETIQUETA, VALOR_SUGERIDO, VALIDAR_LISTA, "+
				   "VIGENCIA, TTVF_CODIGO_DOMINIO, DESCRIPCION, TIPO_DATO "+
				   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
				   "WHERE CODIGO="+CodigoAtri+" ";
                          
    
	ResultSet rst = null;
	rst = cf.getRecordsRset(query,null,conn);
		AtributoVO atr = null;
		while ( rst.next() ) 
		{
		atr = new AtributoVO();
    
		atr.setCodigo(rst.getString("CODIGO"));
		atr.setCodatributo(rst.getString("CODIGO"));
		atr.setTipoatributo(rst.getString("TIPO_ATRIBUTO"));
		atr.setNombre(rst.getString("NOMBRE"));
		atr.setRestriccion(rst.getString("REST_CODIGO"));
		atr.setOrden(rst.getString("ORDEN"));
		atr.setLongitud(rst.getString("LONGITUD"));
		atr.setObligatorio(rst.getString("OBLIGATORIO"));
		atr.setEtiqueta(rst.getString("ETIQUETA"));
		atr.setValorsugerido(rst.getString("VALOR_SUGERIDO"));
		atr.setValLista(rst.getString("VALIDAR_LISTA")); 
		atr.setVigencia(rst.getString("VIGENCIA"));
		atr.setTipovalorflex(rst.getString("TTVF_CODIGO_DOMINIO"));
		atr.setDescripcion(rst.getString("DESCRIPCION"));
		atr.setTipodato(rst.getString("TIPO_DATO"));
     
		}
		
		if(Codigo.equalsIgnoreCase("1234")){
			atr = new AtributoVO();
    
			atr.setCodigo("1234");
			atr.setCodatributo("1234");
			atr.setTipoatributo("B");
			atr.setNombre("TERCERO");
			atr.setRestriccion("");
			atr.setOrden("35");
			atr.setLongitud("200");
			atr.setObligatorio("N");
			atr.setEtiqueta("TERCERO");
			atr.setValorsugerido("");
			atr.setValLista("N"); 
			atr.setVigencia("A");
			atr.setTipovalorflex("");
			atr.setDescripcion("");
			atr.setTipodato("A");
     
			}
	rst.close();
	return atr;
}


 public Collection llenarLista(AtributoVO atr) throws SQLException 
  {
	String strCod = (String)atr.getTipovalorflex();
	int iCodTvfl=Integer.parseInt(strCod.trim());
    
	String query = "SELECT TCS_VALOR_FLEXIBLE.DESCRIPCION DESCRIPCIONVFL, TCS_VALOR_FLEXIBLE.CODIGO_VALOR CODIGOVFL "+
				   "FROM paoyer.TCS_VALOR_FLEXIBLE, paoyer.TCS_TIPO_VALOR_FLEX "+
				   "WHERE TCS_TIPO_VALOR_FLEX.CODIGO ="+iCodTvfl+" "+
				   "AND TCS_VALOR_FLEXIBLE.TVF_CODIGO ="+iCodTvfl+" "+
				   "AND TCS_VALOR_FLEXIBLE.VIGENCIA = 'S' order by TCS_VALOR_FLEXIBLE.DESCRIPCION";
                          
    
	ResultSet rs = null;
	ArrayList valorflex = new ArrayList();
	rs = cf.getRecordsRset(query,null,conn);
		ValorFlexibleVO vfl = null;
	while ( rs.next() ) 
		{
		vfl = new ValorFlexibleVO();
        
		vfl.setDescripcionvf(rs.getString("DESCRIPCIONVFL"));
		Object obval = (Object)rs.getString("CODIGOVFL");
		if(obval!=null)
		{
		  vfl.setCodigovfl(rs.getString("CODIGOVFL"));
		}else
		{
		  vfl.setCodigovfl(rs.getString("DESCRIPCIONVFL"));
		}
              
		valorflex.add(vfl);
		vfl=null;
        
		}
	rs.close();
    
	return valorflex;
    
} 

public int getCodMaxRestriccion() throws SQLException
{
       
	int codigo=0; 
	String strSql = " SELECT MAX(CODIGO)CODIGO FROM TCS_BEN_RESTRICCION";
       
	//
	ResultSet rs = null;
	rs = cf.getRecordsRset(strSql,null,conn);
	while (rs.next()) 
	{
	   codigo=rs.getInt("CODIGO");
	}
	rs.close();
	return codigo;   
}


public String getDesVFL(AtributoVO atr) throws SQLException 
  {
	String strCod = (String)atr.getValorsugerido();
	String strCodvfl="";
	if((Object)strCod != null)
	{
    
	  int iCodVfl=Integer.parseInt(strCod.trim());
      
	  String query = "SELECT TCS_VALOR_FLEXIBLE.DESCRIPCION CODIGOVFL "+
					 "FROM paoyer.TCS_VALOR_FLEXIBLE "+
					 "WHERE TCS_VALOR_FLEXIBLE.CODIGO ="+iCodVfl+" ";
                     
                            
      
	  ResultSet rs = null;
	  rs = cf.getRecordsRset(query,null,conn);
      
	  while ( rs.next() ) 
	  {
		  strCodvfl = rs.getString("CODIGOVFL");
          
	  }
	  rs.close();
	}
    
	return strCodvfl;
    
}  

public int getAtributosVallista(String strCodSubpro)throws SQLException {
     
	int iCodSubpro=Integer.parseInt(strCodSubpro.trim());
	int ActualizarAtriVallista =0;
	String query = "SELECT CODIGO, ETIQUETA, VALIDAR_LISTA "+
				   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
				   "WHERE SBPR_CODIGO="+iCodSubpro+" " +
				   "AND TTVF_CODIGO_DOMINIO IS NULL "+
				   "AND VALIDAR_LISTA='S'";
     
	ResultSet rs = null;
	rs = cf.getRecordsRset(query,null,conn);
		while (rs.next()) 
		{
	   String strCodAtri = rs.getString("CODIGO");
	   ActualizarAtriVallista = ActuAtriVallista(strCodSubpro,strCodAtri);
		}
	rs.close();              
        
	return ActualizarAtriVallista;
}   


public int InsertBeneficiarioAtri(String strValor, String strTipodato, String strCodatri, String Codbeneficiario, int i, String strArrIns[])throws SQLException {
     
	 int iCodAtributo=Integer.parseInt(strCodatri.trim());
	 int iCodbeneficiario=Integer.parseInt(Codbeneficiario.trim());
	 String sql = "";
	 String sql2 = "";
	 if(strTipodato.equals("A")||strTipodato.equals("L"))
	 {
	   sql = "VALOR_CAR_ATR";
	   sql2 = "upper('"+strValor+"')";
	 }else{
		if(strTipodato.equals("N"))
		{
			System.err.print("VALOR_NUM_ATR: "+strValor);
			sql = "VALOR_NUM_ATR";
			int valor = 0;
			if(!strValor.equals(""))
			{
			  valor=Integer.parseInt(strValor.trim()); 
			}             
			sql2 = ""+valor+""; 
            
		}else
		{
			System.err.print("VALOR_FEC_ATR: "+strValor);
			sql = "VALOR_FEC_ATR"; 
			sql2 = "to_date('"+strValor+"','dd/mm/RRRR')";
		}
	 }
     
	String[] arrAux = {strArrIns[0], strArrIns[1], strArrIns[0], strArrIns[1]};
     
	String query = "MERGE INTO TCS_BEN_BENEFICIARIO_ATRIBUTO USING DUAL" +
				   " ON (BEN_CODIGO = "+iCodbeneficiario+" AND SAB_CODIGO = "+iCodAtributo+")" +
				   " WHEN NOT MATCHED THEN" +
				   " INSERT (CODIGO, SAB_CODIGO, BEN_CODIGO, "+sql+
				   ", USUARIO_CREA, FECHA_CREA, TERMINAL_CREA) "+
				   " VALUES(SCS_BEN_BRA.NEXTVAL, "+iCodAtributo+", "+
				   ""+iCodbeneficiario+", "+sql2+", ?,to_date(sysdate,'dd/mm/RRRR'),?) " +
				   " WHEN MATCHED THEN" +
				   " UPDATE SET " + sql + " = " + sql2 + ", USUARIO_MODIFICA = ?," +
				   " FECHA_MODIFICA = to_date(sysdate,'dd/mm/RRRR'), TERMINAL_MODIFICA = ?";
     
	 System.err.println("en beneficiario: " + query);
	 int bInsertoCorrectamente = cf.execSql(query, arrAux,conn);
	 return bInsertoCorrectamente;
     
}


public int InsertBeneficioAtri(String strValor, String strTipodato, String strCodatri, String Codbeneotor, int i, String strArrIns[])throws SQLException {
     
	 int iCodAtributo=Integer.parseInt(strCodatri.trim());
	 int iCodbeneotorgado=Integer.parseInt(Codbeneotor.trim());
	 String fecha = "select to_char(FECHA_BENEFICIO+"+i+",'dd/mm/RRRR') fecha " +
					" from tcs_ben_beneficio_otorgado" +
					" where codigo = ?";
	 String param[] = {Codbeneotor};
	 ResultSet rs = cf.getRecordsRset(fecha,param,conn);
	 if(rs.next())
	 {
	   fecha = rs.getString("fecha");
	 }else
	 {
	   fecha = "sysdate";
	 }
	 String sql = "";
	 String sql2 = "";
	 if(strTipodato.equals("A")||strTipodato.equals("L"))
	 {
	   System.err.print("InsertBeneficioAtri - VALOR_CAR_ATR: "+strValor);
	   sql = "VALOR_CAR_ATR";
	   sql2 = "upper('"+strValor+"')";
	 }else{
		if(strTipodato.equals("N"))
		{
			System.err.print("InsertBeneficioAtri - VALOR_NUM_ATR: "+strValor);
			sql = "VALOR_NUM_ATR";
			int valor = 0;
			if(!strValor.equals(""))
			{
			  valor=Integer.parseInt(strValor.trim()); 
			} 
			sql2 = ""+valor+""; 
            
		}else
		{
			System.err.print("InsertBeneficioAtri - VALOR_FEC_ATR: "+strValor);
			sql = "VALOR_FEC_ATR"; 
			sql2 = "to_date('"+strValor+"','dd/mm/RRRR')";
		}
	 }
     
	 String query = "INSERT INTO TCS_BEN_BENEFICIO_ATRIBUTO (CODIGO, BOT_CODIGO, "+
					 "SAB_CODIGO, "+sql+", CAMPO_F1, "+
					 "usuario_crea, fecha_crea, terminal_crea) "+
					 "VALUES(SCS_BEN_BAT.NEXTVAL, "+iCodbeneotorgado+", "+
					 ""+iCodAtributo+", "+sql2+", to_date('"+fecha+"','dd/mm/RRRR'),?,to_date(sysdate,'dd/mm/RRRR'),?)";
	 System.err.print("en beneficio: " + query);
	 int bInsertoCorrectamente = cf.execSql(query, strArrIns,conn);
	 return bInsertoCorrectamente;
     
}    


	public int updateBeneficioAtri(String strValor, String strTipodato, String strCodatri, String Codbeneotor, int i, String strArrIns[])throws SQLException {
		 String fecha = "select to_char(FECHA_BENEFICIO+"+i+",'dd/mm/RRRR') fecha " +
						" from tcs_ben_beneficio_otorgado" +
						" where codigo = ?";
		 String param[] = {Codbeneotor};
		 ResultSet rs = cf.getRecordsRset(fecha,param,conn);
		 if(rs.next())
		 {
		   fecha = rs.getString("fecha");
		 }else
		 {
		   fecha = "sysdate";
		 }
		 String sql = "";
		 String sql2 = "";
		 if(strTipodato.equals("A")||strTipodato.equals("L"))
		 {
		   sql = "VALOR_CAR_ATR";
		   sql2 = "upper(''"+strValor+"'')";
		 }else{
			if(strTipodato.equals("N"))
			{
				sql = "VALOR_NUM_ATR";
				int valor = 0;
				if(!strValor.equals(""))
				{
				  valor=Integer.parseInt(strValor.trim()); 
				} 
				sql2 = ""+valor+""; 
                
			}else
			{
				sql = "VALOR_FEC_ATR"; 
				sql2 = "to_date(''"+strValor+"'',''dd/mm/RRRR'')";
			}
		 }
         
		String strSql = "{call PCS_BEN_UPDATE_BENATR("+Codbeneotor+", "+strCodatri+", '"+strArrIns[0]+"', '"+strArrIns[1]+"', '"+sql+"'," +
						"'"+sql2+"', 'to_date(''"+fecha+"'',''dd/mm/RRRR'')', ?)}";
		CallableStatement cs = null;
		cs = conn.prepareCall(strSql);

		cs.registerOutParameter(1, Types.INTEGER);
		cs.execute();
        
		return cs.getInt(1);
         
	} 

public int InsertRestriccion(String Arr[])throws SQLException {
     
	 String query = "INSERT INTO TCS_BEN_RESTRICCION(CODIGO, DESCRIPCION, "+
					 "OPERADOR, OPERANDO1, OPERANDO2, ALERTA, VIGENCIA, CAMPO_A4, "+
					 "usuario_crea, fecha_crea, terminal_crea, "+
					 "usuario_modifica, fecha_modifica, terminal_modifica) "+
					 "VALUES(SCS_BEN_SAB.NEXTVAL,upper(?),?,?,?,?,?,?,?,to_date(?,'dd/mm/rrrr'),?,?,to_date(?,'dd/mm/rrrr'),?) ";

     
	 int bInsertoCorrectamente = cf.execSql(query, Arr,conn);
	 return bInsertoCorrectamente;
     
}    

public int ActivarAtributo(String strCodSubpro, String strCodatri)throws SQLException {
     
	 int iCodAtributo=Integer.parseInt(strCodatri.trim());
	 int iCodSubpro=Integer.parseInt(strCodSubpro.trim());
     
	String query = "UPDATE TCS_BEN_SUBP_ATR_BENEFICIARIO SET "+
				   "VIGENCIA = 'A' "+
				   "WHERE CODIGO="+iCodAtributo+" "+
				   "AND SBPR_CODIGO="+iCodSubpro+" ";
     
	 int ActualizoCorrectamente = cf.execSql(query, null,conn);
	 return ActualizoCorrectamente;
     
}   


public int ActuAtriVallista(String strCodSubpro, String strCodatri)throws SQLException {
     
	 int iCodAtributo=Integer.parseInt(strCodatri.trim());
	 int iCodSubpro=Integer.parseInt(strCodSubpro.trim());
     
	String query = "UPDATE TCS_BEN_SUBP_ATR_BENEFICIARIO SET "+
				   "VALIDAR_LISTA = 'N' "+
				   "WHERE CODIGO="+iCodAtributo+" "+
				   "AND SBPR_CODIGO="+iCodSubpro+" ";
     
	 int ActualizoCorrectamente = cf.execSql(query, null,conn);
	 return ActualizoCorrectamente;
     
}

public int ActuCampoRestAtri(String strCodSubpro, String strCodatri, int iCodMaxRest, String strArrAct[])throws SQLException {
     
	 int iCodAtributo=Integer.parseInt(strCodatri.trim());
	 int iCodSubpro=Integer.parseInt(strCodSubpro.trim());
     
	String query = "UPDATE TCS_BEN_SUBP_ATR_BENEFICIARIO SET "+
				   "REST_CODIGO ="+iCodMaxRest+", "+
				   "OBLIGATORIO = 'S', "+
				   "usuario_modifica = ?,"+
				   "fecha_modifica = to_date(?,'dd/mm/rrrr'), "+
				   "terminal_modifica = ?"+
				   "WHERE CODIGO="+iCodAtributo+" "+
				   "AND SBPR_CODIGO="+iCodSubpro+" ";
     
	 int ActualizoCorrectamente = cf.execSql(query, strArrAct,conn);
	 return ActualizoCorrectamente;
     
}   

  
  public List ViewAtributos(String strSubprograma) throws SQLException 
  {
	  int sub=Integer.parseInt(strSubprograma.trim());
	  String strSQL;
	  List listaAtriEsp = new LinkedList();
      
      
	  strSQL = "SELECT ORDEN, ETIQUETA, VIGENCIA "+
			   "FROM TCS_BEN_SUBP_ATR_BENEFICIARIO WHERE SBPR_CODIGO="+sub+" "+
			   "ORDER BY ORDEN";
     
      
	  ResultSet rs = cf.getRecordsRset(strSQL,null,conn);
	  while(rs.next())
	  {
		AtributoVO a1 = new AtributoVO();
		a1.setEtiqueta(rs.getString("ETIQUETA"));
		a1.setOrden(rs.getString("ORDEN"));
		a1.setVigencia(rs.getString("VIGENCIA"));
		listaAtriEsp.add(a1);
		a1 = null;
	  }
	  rs.close();
	  //cf.closeConnection(conn);
   
	return listaAtriEsp;
  }
  
  public String GetNameAtri(String strCodeAtri) throws SQLException
  {
	 String query = "SELECT NOMBRE, DESCRIPCION FROM TCS_BEN_SUBP_ATR_BENEFICIARIO "+
					"WHERE CODIGO = '"+strCodeAtri+"'";
	 String strName = null;
	 ResultSet rs = cf.getRecordsRset(query,null,conn);
	 if(rs.next())
	 {
	   strName = rs.getString("NOMBRE");
	 }
	 rs.close();
	 return strName;
  }
  
  public String GetDateBeneficio(String strIncrement) throws SQLException
  {
	 String query = "select to_char(SYSDATE+"+strIncrement+",'dd/mm/RRRR') fecha from dual ";
	 String strDate = null;
	 ResultSet rs = cf.getRecordsRset(query,null,conn);
	 if(rs.next())
	 {
	   strDate = rs.getString("fecha");
	 }
	 rs.close();
	 return strDate;
  }
  
  /**
   * Mï¿½todo que devuelve el cï¿½digo del atributo genï¿½rico a partir del nombre
   * @param strName
   * @return 
   */
  public String getCodeAtributoGenerico(String strName)throws SQLException
  {
	String query = "SELECT CODIGO FROM TCS_BEN_ATR_GENERICO "+
				   "WHERE NOMBRE  = '"+strName+"'";
    
	String strCode = null;
	ResultSet rst = cf.getRecordsRset(query,null,conn);
	 if(rst.next())
	 {
	   strCode = rst.getString("CODIGO");
	 }
	 rst.close();
	 return strCode;
    
  }
  
  public int ActuVallista(String strCodatri)throws SQLException {
     
	int iCodAtributo=Integer.parseInt(strCodatri.trim());
	String query = "UPDATE TCS_BEN_SUBP_ATR_BENEFICIARIO SET "+
				   "VALIDAR_LISTA = 'N', "+
				   "VALOR_SUGERIDO = '' "+
				   "WHERE CODIGO="+iCodAtributo;
     
	 int ActualizoCorrectamente = cf.execSql(query, null,conn);
	 return ActualizoCorrectamente;
     
}

  
 public Connection getConn()
 {
	return conn;
 }
  
}